Methods and systems for team searches in a social networking service

ABSTRACT

Techniques for team searches within a social graph are described. Consistent with some embodiments, a search request initiated by a searching member profile is received. The search request includes search criteria. A team membership connection between the searching member profile and a team profile is then detected. Based on the detected team membership connection, profile connections between member profiles and teammates of the searching member profile are identified. The teammates are member profiles with team membership connections to the team profile. Then, matching member profiles are identified by matching the member profiles with the identified profile connection with the search criteria. The matching member profiles are then communicated to the searching member profile.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/907,379, filed May 31, 2013, which is incorporated herein byreference in its entirety.

TECHNICAL FIELD

The present disclosure generally relates to data processing systems.More specifically, the present disclosure relates to methods, systems,and computer program products for performing searches in a socialnetworking service.

BACKGROUND

A social network service may be a computer or web-based service thatenables users to establish links or connections with persons for thepurpose of sharing information with one another. Some social networkservices aim to enable friends and family to communicate and share withone another, while others are specifically directed to business userswith a goal of facilitating the establishment of professional networksand the sharing of business information. For purposes of the presentdisclosure, the terms “social network” and “social network service” areused in a broad sense and are meant to encompass services aimed atconnecting friends and family (often referred to simply as “socialnetworks”), as well as services that are specifically directed toenabling business people to connect and share business information (alsocommonly referred to as “social networks” but sometimes referred to as“business networks” or “professional networks”).

Many social network services maintain a variety of personal informationabout their members. For instance, with many social network services,when a user registers to become a member, the member is prompted toprovide a variety of personal or biographical information, which may bedisplayed in a member's personal web page. Such information is commonlyreferred to as personal profile information, or simply “profileinformation,” and when shown collectively, it is commonly referred to asa member's profile. For instance, with some of the many social networkservices in use today, the personal information that is commonlyrequested and displayed as part of a member's profile includes aperson's age, birthdate, gender, interests, contact information,residential address, home town and/or state, the name of the person'sspouse and/or family members, and so forth. With certain social networkservices, such as some business or professional network services, amember's personal information may include information commonly includedin a professional resume or curriculum vitae, such as information abouta person's education, the company at which a person is employed, anindustry in which a person is employed, a job title or function, anemployment history, skills possessed by a person, professionalorganizations of which a person is a member, and so on.

Because social networking services can provide a platform for specifyinga profile, expressing opinions, and connecting various users, members ofthe social network service find it useful to utilize services of thesocial network service to search for and identify other members withinthe social network service that match a particular search criteria. Forexample, a recruiter may initiate a search within the social networkingservice to identify those members that work for a given company, list agiven skill or expertise, or the like. In some cases, such searches mayresult in a large number of matches. To improve searches resulting in alarge number of matches, traditional systems may allow the user tonarrow the search by identifying further search criteria, such as ageographic location or any other search criteria, and then performing asecondary search on the search results using the newly identified searchcriteria.

DESCRIPTION OF THE DRAWINGS

Some embodiments are illustrated by way of example and not limitation inthe FIGs. of the accompanying drawings, in which:

FIG. 1 is a block diagram illustrating various components or functionalmodules of a social network service, consistent with some embodiments;

FIG. 2 is a data diagram illustrating a data model utilized by anexample embodiment;

FIG. 3 is a user interface diagram illustrating an example of a userinterface or web page for creating and managing team profiles,consistent with some embodiments;

FIG. 4 is a user interface diagram illustrating an example of a userinterface or web page for initiating a team search and presenting theteam search results, according to an example embodiment;

FIG. 5 is a flowchart of a method for performing team searches on asocial network service, according to an example embodiment; and

FIG. 6 is a block diagram of a machine in the form of a computing devicewithin which a set of instructions, for causing the machine to performany one or more of the methodologies discussed herein, may be executed.

DETAILED DESCRIPTION

The present disclosure describes methods, systems and computer programproducts for performing team searches on a social graph of a socialnetworking service. In the following description, for purposes ofexplanation, numerous specific details are set forth in order to providea thorough understanding of the various aspects of different embodimentsof the present invention. It should be understood that variousmodifications to the examples may be made. In particular, elements ofone example may be combined and used in other examples to form newexamples. Many of the examples described herein are provided in thecontext of a social or business networking website or service. However,the applicability of the inventive subject matter is not limited to asocial or business networking service.

A social networking service may be an online service, platform or sitethat allows members of the service to build or reflect social networksor social relations among the members. Typically, members of the socialnetworking service construct member profiles corresponding to a member,which may include personal information such as the member's name,contact information, employment information, photographs, personalmessages, status information, links to web-related content, blogs, andso on. Generally, only a portion of a members profile may be viewed bythe general public, and/or other members. In some cases, access rightsmay control the amount of information that may be viewed by othermembers. Different access rights may form a privacy policy which maycontrol the information that may be viewed by other members. Such accessrights may be dependent on the connections between the viewing memberprofile and the viewed member profile. For example, if two memberprofiles are connected (connections are described below) in the socialgraph then they may have greater access to the information stored in themember profiles of each other.

In order to build or reflect social networks or social relations amongmembers, the social networking service allows members to identify, andestablish links or connections with other members. For instance, in thecontext of a business networking service (a type of social networkingservice), a person may establish a link or connection with his or herbusiness contacts, including work colleagues, clients, customers, and soon. With a friendship-based networking service, a person may establishlinks or connections with his or her friends and family. A connection isgenerally formed using an invitation process in which one member“invites” a second member to form a link. The second member than has theoption of accepting or declining the invitation.

Some social networking services may offer a subscription or followingmodel instead of, or in addition to the connection model. A subscriptionor following model is where one member “follows” another member withoutmutual agreement. Typically in this model, the follower is notified ofpublic messages and other communications posted by the member that isfollowed. An example social networking service that follows this modelis Twitter, a micro-blogging service which allows members to followother members without explicit permission.

In general, a connection or link represents, or is otherwise associatedwith, an information access privilege such that a first person who hasestablished a connection with a second person is, via the establishmentof that connection, authorizing the second person to view or accessnon-publicly available portions of their profiles which may includecommunications they have authored (e.g., blog posts, messages, “wall”postings, or the like). Of course, depending on the particularimplementation of the business/social networking service, the nature andtype of the information that may be shared, as well as the granularitywith which the access privileges may be defined to protect certain typesof data may vary greatly.

In addition to creating a member profile, the social networking servicemay be configured to define teams. A team, within the context of asocial networking service, may be data or logic that organizes a groupof members of the social networking service, which may occur for aparticular purpose. In some cases, a team may infer certain rights toits members. For example, members of a team may be granted rights toinitiate a number of out-of-network messages, view a number ofout-of-network profiles, make introductions, and the like. An aptfiction for a team may be a team formed for a recruiting team, arecruiting department, or the like. Other fictions are also possible,such as a sales team, or members looking to network, organizations, orany suitable group of members looking to interact within the socialnetworking service. In an example embodiment, the social networkingservice may form connections between a member profile and a team profilesimilar to methods used to form connections or links between members.That is, in some embodiments, a member may request to join a team and anadministrator for the team members may elect to accept the request ornot. Alternatively or additionally, the administrator may send requeststo selected members to join a team, which may then be accepted or not bythe members. For clarity of description, the members linked or connectedto a team may be referred to as team members.

For clarity of description, connections made between member profiles maybe referred to as profile connections, whereas connections between amember profile and a team profile may be referred to as a teammembership connection.

Generally, social networking services may be configured to performmember initiated searches on the social graph to identify relevantmembers, as may be determined by search criteria. For example, thesocial networking service may provide an interface for a user to entersearch criteria (e.g., a job title, company name, experience level,name, education, or any other attribute). Once the search criteria havebeen entered, the social networking service may then identify thosemembers that match the criteria and then communicate the results to themember that initiated the search. In some cases, the social networkingservice may identify a degree of connection (e.g., first degreeconnections, second degree connections, and the like) between the memberinitiating the search and the members in the search result.

Consistent with some embodiments, a social network service providesmembers (e.g., people, companies, schools, government entities,non-profits, or any other suitable type of entity) with acomputer-implemented service for performing a type of search referred toherein as a team search. In a team search, the social networking servicemay identify members of the social network service that are connected toteam members of a team that the searching member is a part of. Forexample, according to some embodiments, the social networking servicemay detect a team membership connection between the searching member anda team.

Responsive to detecting the team membership connection, the socialnetworking service may then identify profile connections between theteam members and other members of the social networking service. Thosemembers that are connections with the team members are then communicatedin the search result to the searching member. An example of a teamsearch is provided by TeamLink®, a product developed by LinkedIn®,headquartered in Mountain View, Calif., United States.

FIG. 1 is a block diagram illustrating various components or functionalmodules of a social network service 100, consistent with someembodiments. As shown in FIG. 1, the front end consists of a userinterface module (e.g., a web server) 112, which receives requests fromvarious client-computing devices, and communicates appropriate responsesto the requesting client devices. For example, the user interfacemodule(s) 112 may receive requests in the form of Hypertext TransportProtocol (HTTP) requests, or other web-based, application programminginterface (API) requests. The application logic layer includes variousapplication server modules 114, which, in conjunction with the userinterface module(s) 112, generates various user interfaces (e.g., webpages) with data retrieved from various data sources in the data layer.With some embodiments, individual application server modules 114 areused to implement the functionality associated with various services andfeatures of the social network service. For instance, the ability ofperforming team searches, including the ability to establish andcommunicate profile connections of teammates of the searching member,may be services implemented in independent application server modules114. Similarly, a variety of other applications or services that aremade available to members of the social network service will be embodiedin their own application server modules 114. For example, with someembodiments, the social network system 110 includes a team generatormodule 116 and a team search engine 117. The team generator module 116may be a computer-implemented module configured to enable members of asocial network service to establish and manage teams within the socialnetwork service. For example, a member, possibly with administrationrights, may interact with a web interface provided by the team generatormodule 116 to define a team within the social network system 110.Defining a team may include specifying attributes values such as a teamname, an access control list, password, and the like. In someembodiments, the member may then send invitations to other members tojoin the team formed through the team generator module 116.

The team search engine 117 may be a computer-implemented moduleconfigured to perform team searches based on team membership connectionsof the searching member. For example, the team search engine 117 maygenerate search results that indicate that not only does a given membermatch a search criteria but the given member also has a profileconnection with a teammate of the searching member. The operations ofthe team search engine 117 and the team generator module 116 aredescribed in greater detail below.

As shown in FIG. 1, the data layer includes several databases, such as adatabase 118 for storing profile data, including member profile data andteam profiles. Consistent with some embodiments, when a user initiallyregisters to become a member of the social network service, the personwill be prompted to provide some personal information, such as his orher name, age (e.g., birthdate), gender, interests, contact information,home town, address, the names of the member's spouse and/or familymembers, educational background (e.g., schools, majors, matriculationand/or graduation dates, etc.), employment history, skills, professionalorganizations, and so on. This information is stored, for example, inthe database with reference number 118.

Further, as discussed above, the social network service may allow users(e.g., member or administrators of the social network service) toregister or otherwise create team profiles (or just simply “teams”) usedwithin the social network service to specify an organization of memberswithin the social network service. The teams may be stored, for example,in the database with reference number 118, or another database (notshown).

Once registered, a member may invite other members, or be invited byother members, to connect via the social network service. A profileconnection may require a bi-lateral agreement by the members, such thatboth members acknowledge the establishment of the profile connection. Inaddition to profile connections, the team generator module 116 maygenerate a team membership connection between a member profile and ateam profile. As with the profile connection, the team membershipconnection may require a bi-lateral agreement by the member joining theteam and the team administrator, such that both the member and the teamadministrator acknowledge the establishment of the team membershipconnection.

The various associations and relationships that the members establishwith other members and with other entities, such as teams, are storedand maintained within the social graph, shown in FIG. 1 with referencenumber 120.

The social network service may provide a broad range of otherapplications and services that allow members the opportunity to shareand receive information, often customized to the interests of themember. For example, with some embodiments, the social network servicemay include a photo sharing application that allows members to uploadand share photos with other members. With some embodiments, the socialnetwork service may host various job listings providing details of jobopenings with various organizations.

As members interact with the various applications, services and contentmade available via the social network service, the members' behavior(e.g., content viewed, links selected, etc.) may be monitored andinformation concerning the member's behavior may be stored, for example,as indicated in FIG. 1 by the database with reference number 122. Thisinformation may be used to classify the member as being in variouscategories. For example, if the member performs frequent searches of joblistings, thereby exhibiting behavior indicating that the member is alikely job seeker, this information can be used to classify the memberas a job seeker. This classification can then be used as a memberprofile attribute for purposes of enabling others to target the memberfor receiving messages or status updates. Accordingly, a company thathas available job openings can publish a message that is specificallydirected to certain members of the social network service who are jobseekers, and thus, more likely to be receptive to recruiting efforts.

FIG. 2 is a data diagram illustrating a data model 200 utilized by anexample embodiment. The data model 200 may be conceptual description ofthe data and relationships stored in databases 118, 120. For example, asillustrated in FIG. 2, the data model 200 may include a team profile 202and member profiles 204 a-d. As described above, the team profile 202may be data or logic representing an organization of members of thesocial networking service. FIG. 2 shows, by way of example and notlimitation, that the team profile 202 represents a team named“EliteRecruiters.” In some cases, the team profile 202 may represent anorganization of members within another larger organization. Toillustrate, employees of a company may define a team profile torepresent a real-life program, department, project, committee, or anyother suitable group within a company. In this case, the team profilemay be a sub-organization of the company. Alternatively or additionally,the team profile 202 may cross multiple organizations. To illustrate,the team profile 202 may represent alumni of a given university,charity, fundraiser, or any similar joint venture. It is to beappreciated that the team profile may be associated with a number ofproperties or attributes. For example, the team profile 202 may includeproperties that measure an out-of-message limit, number of sales, numberof profile views, number of introductions, or any other suitableproperty that may be used to measure the activity of the team membersthat are connected to the team profile 202. In an example embodiment,the social network service may offer team based services for a fee, suchas a subscription fee that allows a number of seats for the owner of theteam definition to fill.

As discussed above, the member profiles 204 a-d may be data or logicrepresenting users of the social network service. For example, themember profiles may include attributes specifying a member's name,employment history, educational history, and the like. As discussedabove, member profiles may form profile connections with each other.Such profile connection may represent real life social connectionsbetween the members and may grant certain access rights to the connectedmembers (e.g., connected members may see “private information listed onthe member's profile page). This is shown in FIG. 2 as the profileconnection 210 between member profile 204 a (e.g., Ben Smith) and memberprofile 204 c (e.g., John Doe). The member profile 204 b and the memberprofile 204 d may be connected through a profile connection 212.

Also discussed above, in addition to forming profile connections withmember profiles, the team generator 116 may form team membershipconnections between member profiles and team profiles. Such teammembership connections may represent that a member profile is a memberof a team profile. This is shown in FIG. 2 as the team membershipconnection 214 between the member profiles 204 a-b. Because memberprofiles 204 a-b are members of the team profile 202, the memberprofiles 204 a-b are collectively referred to as the team members 208.Further, member profile 204 a may be referred to as a teammate of memberprofile 204 b, and vice-versa.

The member profiles 204 a-d, the team profile 202, and the connections(e.g., profile connections 210, 212 and team membership connection 214)may form a social graph, according to example embodiments, as may bestored in the database 120.

It is to be appreciated that the data model 200 shown in FIG. 2 isprovided merely for illustration. Some embodiments may use differentdata models and still be consistent with this disclosure. For example,some embodiments may define team profiles as a property within a memberprofile, rather than a separate data object. In such embodiments, thesocial networking service may list a team property by updating themember profile in such a way that the appropriate property is set with avalue representing the team, for example.

FIG. 3 is a user interface diagram illustrating an example of a userinterface 300 or web page for creating and managing team profiles,consistent with some embodiments. In some embodiments, the teamgenerator 116 may have generated the user interface 300 illustrated inFIG. 3 for a particular member utilizing the social network service. Inan example use case, Ben Smith may access the user interface 300 tocreate a team profile and then submit invitations to members of hissocial graph or the social networking service. For example, FIG. 3 showsthat the user interface 300 includes an invitation module 310 and statusmodules 330 and 340. The invitation module 310 may be acomputer-implemented module that provides a user interface for anadministrator of a team to specify members of the social network servicethat may form part of the team. For example, as shown in FIG. 3, theinvitation module 310 may provide a member selection element 312 forspecifying members of the social network service that are to receive aninvitation to join the team. In some embodiments, the member selectionelement 312 may include data accessed from a contact list belonging tothe administrator (e.g., email contact list) and may provideauto-completion functionality when the administrator begins typing thebeginning of a contact's name.

In some embodiments, the invitation module 310 may include additionalelements for specifying access rights for the member being invited tojoin the team. For example, access right element 314 may allow theadministrator to specify whether the invited members will haveadministration rights or membership rights. In some cases,administration rights may grant a member rights to modify the propertiesof the team definition and to establish team membership connectionstherewith. Some embodiments may specify access rights of different scope(e.g., separate sets of rights for modifying one or more properties andrights to modify the connections associated with the team profile). Oncethe administrator specifies the members of the social networking servicethat are to be invited to join the team, the administrator may thenactivate a grant invitation element 316. Activating the grant invitationelement 316 may cause the team generator module 116 to send invitationsto the members of the social networking service specified by the memberselection element 312.

The status modules 330 and 340 may be computer-implemented modulesgenerated by the team generator module 116 to provide feedback on thestatus of the invitations to join the team that were sent to members.For example, as shown in FIG. 3, the status module 330 may list one ormore member profiles that have been previously invited to join the team,the status of the invitation (e.g., accepted, declined, or pending), andaccount type (e.g., access rights). The status module 340 may provide agraphical representation of the status of the invitations sent by theadministrator through the invitation module 310. For example, the statusmodule 340 may show a visual chart or graph illustrating the number ofinvitations that have been accepted, pending, or, in some embodiments,declined.

Once a member has joined a team, the member may initiate a team searchon the social graph of the social networking service, as may beperformed by the team search engine 117. FIG. 4 is a user interfacediagram illustrating an example of a user interface 400 or web page forinitiating a team search and presenting the team search results,according to an example embodiment. In some embodiments, the team searchengine 117 may have generated the user interface 400 illustrated in FIG.4 responsive to receiving search criteria entered by a searching member.As an example, the searching member may have specified that the searchcriteria include the term “Software Engineering.”

As FIG. 4 shows, the user interface 400 may include a team searchactivator 402 and member profiles 404 a-b displayed in a search resultmodule 404. The team search activator 402 may be a selectable userinterface element that, when activated by the searching member, enablesa team search that is based on the profile connections of the teammembers. Accordingly, where the team search activator 402 is disabled,the team search engine 117 may perform a conventional search. On theother hand, where the team search activator 402 is enabled, the teamsearch engine 117 may perform a team search that surfaces profileconnections of the teammates of the searching member. In someembodiments, the team search engine 117 may perform a team search inconjunction with conventional searches, such as searches based onprofile connections between members and the searching member.

The search result module 404 may be a module generated by the teamsearch engine 117 that displays the results of a query submitted by thesearching member. For example, the search result module 404 may displaythe member profile 404 a responsive to David Simpson being connected tothe searching member and having a property matching the term “SoftwareEngineering.” In some cases, the searching member may be connected andthe member represented by the member profile 404 a may be connected by afirst degree connection (e.g., the searching members exchanged aninvitation to be connected and an acceptance of the invitation). Inother cases, the searching member and the member represented by themember profile 404 a may be connected by an indirect connection. Anexample of an indirect connection is a second degree connection whereDavid Simpson and the searching member share a first degree connection.Other degrees of connection may also be included, such as third degreeconnections, fourth degree connections, and so forth. The member profile404 a may include a connection degree indicator 410 to indicate therelative degree of connection between the searching member and themember profile 404 a.

Similar to the member profile 404 a, the member profile 404 b may alsoinclude a property that matches the search criteria term “SoftwareEngineering.” However, rather than being included because of a degree ofprofile connection (e.g., first degree connection, second degreeconnection, and so forth), the member profile 404 b may appear in thesearch result because the member profile 404 b may be a profileconnection with a member profile that belongs to the same team as thesearching member. For example, with momentary reference to FIG. 2,assuming that the member profile 204 b is the searching member, memberprofile 204 c may appear in the search result because the member profile204 c has the profile connection 210 with member profile 204 a and, inturn, the member profile 204 a is part of the same team as the searchingmember (e.g., member profile 204 b). This is, member profile 204 c maybe a profile connection of a teammate of the searching member.

With reference back to FIG. 4, a team result indicator 406 may be a userinterface element that indicates that the member profile 404 b is partof the search result because the member profile 404 b is a profileconnection with a member of the team. Further, a team connection element408 may be a user interface element that, responsive to user selection,displays the team members that have profile connections with the memberprofile 404 b. In some embodiments, the team connection element 408 mayinclude additional information, such a count of the number of teammembers that are connected to the member profile 404 b, the referencesto the team members that are connected to the member profile 404 b, andany other suitable data characterizing the connections between themember profile 404 b and the team members.

FIG. 5 is a flowchart of a method 500 for performing team searches on asocial network service, according to an example embodiment. In anexample embodiment, the method 500 may be performed by the team searchengine 117 of FIG. 1.

The method 500 may begin at operation 502 when the team search engine117 receives a search request for member profiles in social networkservice. In an example embodiment, the search request may include searchcriteria, such as search terms, facets, and the like.

At operation 504, responsive to receiving the search request, the teamsearch engine 117 may determine whether a team search feature isenabled. For example, as previously described above with reference toFIG. 4, a searching member may select the team search activator 402displayed on a search interface. Activating the team search activator402 may provide a signal to the team search engine 117 that thesearching member would like the team search engine 117 to identifyprofile connections of teammates of the searching member.

At operation 506, the team search engine 117 may then identify memberprofiles that are connected with a teammate of the searching member. Forexample, in some embodiments, the team search engine 117 may identify ateam membership connection between the searching member and a teamprofile and, in turn, the team members for that team. Then, for eachteam member identified, the team search engine 117 may identify themember profiles that are connected to those team members by profileconnections, which may conceptually define the search space of memberprofiles. As described above, a team may be formed based on anadministrator creating a team profile, sending invitations to members ofa social network service, and receiving acceptance of those invites.When a member accepts the invite, the team generator 116 may create ateam membership connection between the team profile and the memberprofile, which may be represented by data structures in the social graphdata (e.g., see social graph data 120 shown in FIG. 1).

In some embodiments, the team search engine 117 may limit the memberprofiles identified at operation 506 based on a degree threshold. A“degree threshold,” as used herein, may specify a level of degree of aconnection between member profiles before being identified as a memberprofile that is connected to the team. For example, one embodiment ofthe team search engine 117 may limit connections of the team to be firstdegree connections of team members, while another embodiment of the teamsearch engine 117 may limit connections of the team to be second or anyother indirection connection of the team members. A degree threshold maybe a configuration parameter of the team search engine 117.

Continuing with FIG. 5, at operation 508, the team search engine 117 mayidentify the member profiles that match the search criteria specified bythe search request. For example and not limitation, the team searchengine 117 may identify the member profiles that include the search term“Software Engineering.” In other embodiments, the team search engine 117may also match the member profiles based on facets specified by thesearch request, such as by a company name, location, job title, degreeof connection, group participation, and the like.

At operation 510, the team search engine 117 may communicate the searchresults to the searching member. For example, the team search engine 117may generate search results displayable in the user interface 400 ofFIG. 4. In some cases, the team search engine 117 may provide thesearching member access rights to the member profiles communicated inthe search results as if the searching member is a profile connection.For example, the searching member may be given access to viewinformation from the member profile in the search result that is grantedto first degree connections. Other access rights may allow the memberprofile to send a message to the member profile in the search result.

It is to be appreciated that the embodiments disclosed above may bepracticed in alternative embodiments without departing from theembodiments contemplated by this disclosure. For example, although theteam search engine 117 of FIG. 1 was described as limiting the memberprofiles identified as being connected to a team based on a connectionthreshold, other embodiments may generate connections of a team on aperiodic or scheduled basis. For example, where a member profile isconnected to a team profile, the team generator 116 may include firstdegree (or any other degree) connections of the accepting member to theconnections of the team. Thereafter, the team generator 116 may executea scheduled, possibly periodic, process that iterates over the profileconnections of the team members to determine if the team membersestablished any new profile connections since they first joined theteam. If so, the team generator 116 may create a new relationshipbetween the new profile connections and the team profile. Such scheduledprocessing may improve the processing time used to perform searches ofteam connections because the connections of the team are pre-computed.

The various operations of example methods described herein may beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented modulesor objects that operate to perform one or more operations or functions.The modules and objects referred to herein may, in some exampleembodiments, comprise processor-implemented modules and/or objects.

Similarly, the methods described herein may be at least partiallyprocessor-implemented. For example, at least some of the operations of amethod may be performed by one or more processors orprocessor-implemented modules. The performance of certain operations maybe distributed among the one or more processors, not only residingwithin a single machine or computer, but deployed across a number ofmachines or computers. In some example embodiments, the processor orprocessors may be located in a single location (e.g., within a homeenvironment, an office environment or at a server farm), while in otherembodiments the processors may be distributed across a number oflocations.

The one or more processors may also operate to support performance ofthe relevant operations in a “cloud computing” environment or within thecontext of “software as a service” (SaaS). For example, at least some ofthe operations may be performed by a group of computers (as examples ofmachines including processors), these operations being accessible via anetwork (e.g., the Internet) and via one or more appropriate interfaces(e.g., Application Program Interfaces (APIs)).

FIG. 6 is a block diagram of a machine in the form of a computer systemwithin which a set of instructions, for causing the machine to performany one or more of the methodologies discussed herein, may be executed.In alternative embodiments, the machine operates as a standalone deviceor may be connected (e.g., networked) to other machines. In a networkeddeployment, the machine may operate in the capacity of a server or aclient machine in a client-server network environment, or as a peermachine in peer-to-peer (or distributed) network environment. In apreferred embodiment, the machine will be a server computer, however, inalternative embodiments, the machine may be a personal computer (PC), atablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), amobile telephone, a web appliance, a network router, switch or bridge,or any machine capable of executing instructions (sequential orotherwise) that specify actions to be taken by that machine. Further,while only a single machine is illustrated, the term “machine” shallalso be taken to include any collection of machines that individually orjointly execute a set (or multiple sets) of instructions to perform anyone or more of the methodologies discussed herein.

The example computer system 600 includes a processor 602 (e.g., acentral processing unit (CPU), a graphics processing unit (GPU) orboth), a main memory 601 and a static memory 606, which communicate witheach other via a bus 608. The computer system 600 may further include adisplay unit 610, an alphanumeric input device 617 (e.g., a keyboard),and a user interface (UI) navigation device 611 (e.g., a mouse). In oneembodiment, the display, input device and cursor control device are atouch screen display. The computer system 600 may additionally include astorage device 616 (e.g., drive unit), a signal generation device 618(e.g., a speaker), a network interface device 620, and one or moresensors 621, such as a global positioning system sensor, compass,accelerometer, or other sensor.

The drive unit 616 includes a machine-readable medium 622 on which isstored one or more sets of instructions and data structures (e.g.,software 623) embodying or utilized by any one or more of themethodologies or functions described herein. The software 623 may alsoreside, completely or at least partially, within the main memory 601and/or within the processor 602 during execution thereof by the computersystem 600, the main memory 601 and the processor 602 also constitutingmachine-readable media.

While the machine-readable medium 622 is illustrated in an exampleembodiment to be a single medium, the term “machine-readable medium” mayinclude a single medium or multiple media (e.g., a centralized ordistributed database, and/or associated caches and servers) that storethe one or more instructions. The term “machine-readable medium” shallalso be taken to include any tangible medium that is capable of storing,encoding or carrying instructions for execution by the machine and thatcause the machine to perform any one or more of the methodologies of thepresent invention, or that is capable of storing, encoding or carryingdata structures utilized by or associated with such instructions. Theterm “machine-readable medium” shall accordingly be taken to include,but not be limited to, solid-state memories, and optical and magneticmedia. Specific examples of machine-readable media include non-volatilememory, including by way of example semiconductor memory devices, e.g.,EPROM, EEPROM, and flash memory devices; magnetic disks such as internalhard disks and removable disks; magneto-optical disks; and CD-ROM andDVD-ROM disks.

The software 623 may further be transmitted or received over acommunications network 626 using a transmission medium via the networkinterface device 620 utilizing any one of a number of well-knowntransfer protocols (e.g., HTTP). Examples of communication networksinclude a local area network (“LAN”), a wide area network (“WAN”), theInternet, mobile telephone networks, Plain Old Telephone (POTS)networks, and wireless data networks (e.g., Wi-Fi® and WiMax® networks).The term “transmission medium” shall be taken to include any intangiblemedium that is capable of storing, encoding or carrying instructions forexecution by the machine, and includes digital or analog communicationssignals or other intangible medium to facilitate communication of suchsoftware.

Although an embodiment has been described with reference to specificexample embodiments, it will be evident that various modifications andchanges may be made to these embodiments without departing from thebroader spirit and scope of the invention. Accordingly, thespecification and drawings are to be regarded in an illustrative ratherthan a restrictive sense. The accompanying drawings that form a parthereof, show by way of illustration, and not of limitation, specificembodiments in which the subject matter may be practiced. Theembodiments illustrated are described in sufficient detail to enablethose skilled in the art to practice the teachings disclosed herein.Other embodiments may be utilized and derived therefrom, such thatstructural and logical substitutions and changes may be made withoutdeparting from the scope of this disclosure. This Detailed Description,therefore, is not to be taken in a limiting sense, and the scope ofvarious embodiments is defined only by the appended claims, along withthe full range of equivalents to which such claims are entitled.

What is claimed is:
 1. A computer-implemented method comprising:receiving a search request being initiated by a searching memberprofile, the search request including search criteria; detecting, in oneor more databases, a team membership connection between the searchingmember profile and a team profile; based on the detected team membershipconnection, identifying, by one or more processors, profile connectionsbetween member profiles and teammates of the searching member profile,the teammates being member profiles with team membership connections tothe team profile; identifying matching member profiles by matching themember profiles with the identified profile connection with the searchcriteria; and communicating the matching member profiles with theidentified profile connections to the searching member profile.
 2. Themethod of claim 1, wherein the team profile includes messaging limitsshared by the searching member profile and the teammates.
 3. The methodof claim 1, wherein identifying the profile connections between themember profiles and the teammates includes limiting the profileconnections to first degree connections.
 4. The method of claim 1,further comprising granting the searching member profile access rightsto the matching member profiles corresponding access rights granted tomember profiles with profile connection between each other.
 5. Themethod of claim 1, wherein communicating the matching member profilescomprising generating a visual indicator for each of the matching memberprofiles, the visual indicator designating the communicated memberprofiles as profile connections of the teammates of the searching memberprofile.
 6. The method of claim 1, further comprising: communicatingadditional member profiles that match the search criteria, theadditional member profiles lacking team membership connections to theteam profile; and generating a visual indicator to be displayed with theadditional member profiles, the additional indicator being a differentvisual image than the visual indicators associated with the matchingmember profiles.
 7. The method of claim 1, further comprising, prior toreceiving the search request: generating a user interface that includesa member selection element configured to obtain a user specified memberof the social networking service; responsive to detecting a userinitiated submission of the user specified member, sending an invitationto join the team profile to a member account corresponding to the userspecified member.
 8. The method of claim 7, further comprising,responsive to detecting an acceptance of the invitation to join the teamprofile, generating a team membership connection between the teamprofile and the member profile corresponding to the user specifiedmember.
 9. The method of claim 8, further comprising updating a statusof the invitation to indicate that the user specified member joined theteam profile.
 10. The method of claim 8, further comprising: identifyingadditional member profiles connected to the member profile of the userspecified member through profile connections; and generating teamconnections between the additional member profiles and the team profile.11. A computer system comprising: at least one processor; a team searchengine implemented by the at least one processor and configured to:receive a search request being initiated by a searching member profile,the search request including search criteria; detect, in one or moredatabases, a team membership connection between the searching memberprofile and a team profile; based on the detected team membershipconnection, identify profile connections between member profiles andteammates of the searching member profile, the teammates being memberprofiles with team membership connections to the team profile; identifymatching member profiles by matching the member profiles with theidentified profile connection with the search criteria; and communicatethe matching member profiles with the identified profile connections tothe searching member profile.
 12. The computer system of claim 11,wherein the team profile includes messaging limits shared by thesearching member profile and the teammates.
 13. The computer system ofclaim 11, wherein the team search engine is configured to identify theprofile connections between the member profiles and the teammates bylimiting the profile connections to first degree connections.
 14. Thecomputer system of claim 11, wherein the team search engine is furtherconfigured to grant the searching member profile access rights to thematching member profiles corresponding access rights granted to memberprofiles with profile connection between each other.
 15. The computersystem of claim 11, wherein the team search engine is further configuredto communicate the matching member profiles by generating a visualindicator for each of the matching member profiles, the visual indicatordesignating the communicated member profiles as profile connections ofthe teammates of the searching member profile.
 16. The computer systemof claim 11, wherein the team search engine is further configured to:communicate additional member profiles that match the search criteria,the additional member profiles lacking team membership connections tothe team profile; and generate a visual indicator to be displayed withthe additional member profiles, the additional indicator being adifferent visual image than the visual indicators associated with thematching member profiles.
 17. The computer system of claim 11, furthercomprising a team generator module implemented by the at least oneprocessors t and configured to, prior to receiving the search request:generate a user interface that includes a member selection elementconfigured to obtain a user specified member of the social networkingservice; responsive to detecting a user initiated submission of the userspecified member, send an invitation to join the team profile to amember account corresponding to the user specified member.
 18. Thecomputer system of claim 17, wherein the team generator module isfurther configured to, responsive to detecting an acceptance of theinvitation to join the team profile, generate a team membershipconnection between the team profile and the member profile correspondingto the user specified member.
 19. The computer system of claim 18,wherein the team generator module is further configured to update astatus of the invitation to indicate that the user specified memberjoined the team profile.
 20. A non-transitory computer-readable mediumstoring executable instructions thereon, which, when executed by aprocessor, cause the processor to perform operations including:receiving a search request being initiated by a searching memberprofile, the search request including search criteria; detecting, in oneor more databases, a team membership connection between the searchingmember profile and a team profile; based on the detected team membershipconnection, identifying profile connections between member profiles andteammates of the searching member profile, the teammates being memberprofiles with team membership connections to the team profile;identifying matching member profiles by matching the member profileswith the identified profile connection with the search criteria; andcommunicating the matching member profiles with the identified profileconnections to the searching member profile.